/**
 * 更新角色
 */
$(function() {

    if(flag=="updateRole"){
        // zTree 的参数配置
        var setting = {
            check: {
                enable: true,  //设置 zTree 是否开启异步加载模式
                chkboxType:{ "Y":"p", "N":"s"}
                /**
                 Y 属性定义 checkbox 被勾选后的情况；
                 N 属性定义 checkbox 取消勾选后的情况；
                 “p” 表示操作会影响父级节点；
                 “s” 表示操作会影响子级节点。
                 请注意大小写，不要改变
                 */
            },
            data: {
                simpleData: {
                    enable: true
                }
            }
        };
        permIdList = listToTreeNodeJson(permIdList)
        console.log(JSON.stringify(permIdList))
        $.fn.zTree.init($("#treeDemo"), setting, permIdList);
    }

    layui.use(['form' ,'layer'], function(){
        var form = layui.form;
        var layer=layui.layer;

        //监听提交
        form.on('submit(updateRoleSumbit)', function(data){
            //获取选中的权限
            var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            var nodes = treeObj.getCheckedNodes(true);
            //选中的复选框
            var nodeIds =new Array();
            for (var i = 0; i < nodes.length; i++) {
                nodeIds.push(nodes[i].id);
            }
            //校验是否授权
            var permList = nodeIds.join(",");
            // console.log("permList:"+permList)
            if(permList==null || permList==''){
                layer.alert("请给该角色添加权限菜单！")
                return false;
            }
            $("#rolePermIds").val(permList);
            $.ajax({
                type: "POST",
                data: $("#updateRoleForm").serialize(),
                url: "/auth/setRole",
                success: function (data) {
                    if (data == "ok") {
                        layer.alert("操作成功",function(){
                            layer.closeAll();
                            load();
                        });
                    } else {
                        layer.alert(data);
                    }
                },
                error: function (data) {
                    layer.alert("操作请求错误，请您稍后再试");
                }
            });
            return false;
        });
        form.render();
    });
});
/**
 * list转化为tree结构的json数据
 */
function listToTreeNodeJson(data){
    //data不能为null，且是数组
    if(data!=null && (data instanceof Array)){
        //递归转化
        var getJsonTree=function(data,parentId){
            var itemArr=[];
            for(var i=0;i < data.length;i++){
                var node=data[i];
                if(node.pid==parentId && parentId!=null){
                    var newNode={name:node.name,open:true,id:node.id,pId:node.pid,code:node.code,istype:node.istype,zindex:node.zindex,checked:node.checked, children:getJsonTree(data,node.id)};
                    itemArr.push(newNode);
                }
            }
            return itemArr;
        }
        // return JSON.stringify(getJsonTree(data,''));
        return getJsonTree(data,0);
    }
    //console.log(JSON.stringify(getJsonTree(data,'')));
}

/**
 * treeNode: {
    name, //节点显示的文本
    checked,//节点是否勾选，ztree配置启用复选框时有效
    open, //节点是否展开
    icon, //节点的图标
    iconOpen,//节点展开式的图标
    iconClose,//节点折叠时的图标
    id,  //节点的标识属性，对应的是启用简单数据格式时idKey对应的属性名，并不一定是id,如果setting中定义的idKey:"zId",那么此处就是zId
    pId, //节点parentId属性，命名规则同id
    children,//得到该节点所有孩子节点，直接下级，若要得到所有下属层级节点，需要自己写递归得到
    isParent,//判断该节点是否是父节点，一般应用中通常需要判断只有叶子节点才能进行相关操作，或者删除时判断下面是有子节点时经常用到。
    getPath()//得到该节点的路径，即所有父节点，包括自己，此方法返回的是一个数组，通常用于创建类似面包屑导航的东西A-->B-->C
   }
 */

